package org.cable.shop.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义防重提交
 * @author hsj
 * @date 2023/11/8 10:20
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RepeatSubmit {

	/**
	 * 支持两种模式 1.方法参数   2.一个是令牌
	 */
	enum Type{PARAM,TOKEN}

	/**
	 * 默认防重提交是方法参数
	 * @return
	 */
	Type limitType() default Type.PARAM;


	/**
	 * 加锁过期时间，默认是5秒
	 * @return
	 */
	long lockTime() default 5;


}
